A best-effort (BE) delivery service describes a network service or link that does not guarantee data is delivered. Instead, a best-effort service is provided in which rate and delivery time of a flow depends, at least in part, on current traffic load. In a network environment using best-effort delivery service, such as Internet Protocol (IP), network elements typically maintain queues for receiving and temporarily storing packets of flows traversing the network.
Network congestion occurs when the offered load to a node or link in a network exceeds the node or link's capacity. When this occurs, the Quality of Service (QoS) of flows traversing such a congested node or link may be adversely affected. Common effects of network congestion can include queuing delay and/or packet loss. For example, buffer management algorithms may be used to drop a packet in response to a queue overflowing. When a packet is dropped from a particular flow in a queue, a source node of the flow may be notified so that the protocol associated with the flow can reduce the offered load of the flow. Queuing delay is another effect of network congestion and refers to the time a packet waits in a queue until it can be transmitted. As a queue begins to grow due to network traffic arriving faster than it can be processed, the amount of delay experienced by packets in the queue increases. When increasing delay is detected in a flow, a source node of the flow may detect the delay based on various types of delay signals.